#include "copawidget.h"

CopaWidget::CopaWidget(Copa *copa_, QWidget *parent) :
    QWidget(parent), copa(copa_)
{
    QVBoxLayout *main_layout = new QVBoxLayout;
    this->setLayout(main_layout);


    QHBoxLayout *profundidad_layout = new QHBoxLayout;
    QLabel *profundidad_label = new QLabel("Profundidad");
    profundidad = new QSlider(Qt::Horizontal);
    profundidad->setMinimum(-12);
    profundidad->setMaximum(12);
    //profundidad->setSingleStep(0.25);
    profundidad->setValue(0);

    profundidad_layout->addWidget(profundidad_label);
    profundidad_layout->addWidget(profundidad);

    main_layout->addLayout(profundidad_layout);


    QHBoxLayout *radio_superior_layout = new QHBoxLayout;
    QLabel *radio_superior_label = new QLabel("Radio Superior");
    radio_superior = new QSlider(Qt::Horizontal);
    radio_superior->setMinimum(75);
    radio_superior->setMaximum(150);
    radio_superior->setValue(100);

    radio_superior_layout->addWidget(radio_superior_label);
    radio_superior_layout->addWidget(radio_superior);

    main_layout->addLayout(radio_superior_layout);


    QHBoxLayout *radio_centro_layout = new QHBoxLayout;
    QLabel *radio_centro_label = new QLabel("Radio Centro");
    radio_centro = new QSlider(Qt::Horizontal);
    radio_centro->setMinimum(50);
    radio_centro->setMaximum(150);
    radio_centro->setValue(100);

    radio_centro_layout->addWidget(radio_centro_label);
    radio_centro_layout->addWidget(radio_centro);

    main_layout->addLayout(radio_centro_layout);


    QHBoxLayout *radio_base_layout = new QHBoxLayout;
    QLabel *radio_base_label = new QLabel("Radio Base");
    radio_base = new QSlider(Qt::Horizontal);
    radio_base->setMinimum(50);
    radio_base->setMaximum(150);
    radio_base->setValue(100);

    radio_base_layout->addWidget(radio_base_label);
    radio_base_layout->addWidget(radio_base);

    main_layout->addLayout(radio_base_layout);

    QPushButton *save_button = new QPushButton("Guardar");
    main_layout->addWidget(save_button);

    connect(radio_base,SIGNAL(valueChanged(int)),this,SLOT(SetRadioBase(int)));
    connect(radio_centro,SIGNAL(valueChanged(int)),this,SLOT(SetRadioCentro(int)));
    connect(radio_superior,SIGNAL(valueChanged(int)),this,SLOT(SetRadioSuperior(int)));
    connect(profundidad,SIGNAL(valueChanged(int)),this,SLOT(SetProfundidad(int)));

    connect(save_button,SIGNAL(clicked()),this,SLOT(SaveDialog()));

}

void CopaWidget::SetRadioBase(int val){
    copa->SetRadioBase(val/100.0);
    copa->Update();
    emit Updated();
}

void CopaWidget::SetRadioCentro(int val){
    copa->SetRadioCentro(val/100.0);
    copa->Update();
    emit Updated();
}

void CopaWidget::SetRadioSuperior(int val){
    copa->SetRadioSuperior(val/100.0);
    copa->Update();
    emit Updated();
}

void CopaWidget::SetProfundidad(int val){
    copa->SetProfundidad(val/100.0);
    copa->Update();
    emit Updated();
}

void CopaWidget::SaveDialog(){
    QString fileName = QFileDialog::getSaveFileName(this,tr("Save object..."),QString(),tr("BRep (*.brp)"));
    if (fileName.isEmpty())
        return;

    if(!copa->Save(fileName)){
        QErrorMessage *error = new QErrorMessage(this);
        error->showMessage("Error");
    }
}
